<?php

namespace app\api\model\wanlshop;

use think\Model;
use traits\model\SoftDelete;

class Goods extends Model
{
    use SoftDelete;

    // 表名
    protected $name = 'wanlshop_goods';

    // 自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    protected $deleteTime = 'deletetime';

    // 平台 0 东火木 1 唯品尚
    public $platformOfArray = [0, 1];


    // getImagesAttr
    public function getImagesAttr($value)
    {
        return $value ? explode(',', $value) : [];
    }

    // SKU
    public function getSkuAttr($value, $data)
    {
        $list = GoodsSku::where(['goods_id' => $data['id'], 'stock' => ['>', 0], 'state' => ['=', 0]])->field('id,thumbnail,difference,price,market_price,stock,state,weigh,sn,sales')->select();
        return $list;
    }

    // SPU
    public function getSpuAttr($value, $data)
    {
        $list = GoodsSpu::where('goods_id', $data['id'])->field('id,name,item')->select();
        return $list;
    }

    // 获取评论
    public function getCommentListAttr($value, $data)
    {
        $comment = new GoodsComment;
        $where = [
            'goods_id' => $data['id'],
            'order_type' => 'goods'
        ];
        $list = $comment
            ->where($where)
            ->order('createtime desc')
            ->field('id,user_id,content,suk,images,score')
            ->limit(1) // 默认展示几条评论
            ->select();
        foreach ($list as $row) {
            if ($row->user) {
                $row->user->visible(['id', 'nickname', 'avatar']);
            }
        }
        return [
            'figure' => $comment->where($where)->where('images', 'neq', '')->count(), //有图
            // 'tag' => array_count_values($comment->where($where)->limit(100)->column('tag')), //评论标签
            'data' => $list
        ];
    }


    // 类目属性 格式化
    public function getCategoryAttributeAttr($value)
    {
        return json_decode($value, true);
    }

    // 品牌
    public function brand()
    {
        return $this->belongsTo('app\api\model\wanlshop\Brand', 'brand_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    // 运费模板
    public function freight()
    {
        return $this->belongsTo('app\api\model\wanlshop\ShopFreight', 'freight_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    // 运费模板
    public function freightdata()
    {
        return $this->belongsTo('app\api\model\wanlshop\ShopFreightData', 'freight_id', 'freight_id', [], 'LEFT')->setEagerlyType(0);
    }

    // 店铺
    public function shopGoods()
    {
        return $this->belongsTo('app\api\model\wanlshop\Shop', 'shop_id', 'id', [], 'LEFT');
    }

    // 类目
    public function category()
    {
        return $this->belongsTo('app\api\model\wanlshop\Category', 'category_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    // 店铺类目
    public function shopsort()
    {
        return $this->belongsTo('app\api\model\wanlshop\ShopSort', 'shop_category_id', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    public function sku()
    {
        return $this->hasMany(GoodsSku::class, 'goods_id', 'id');
    }


    /**
     *  活动商品列表
     */

    public function getActivityGoodsList($params)
    {
        $where['activity_id'] = $params['activity_id'];
        // 总条数
        $count = $this->where($where)->count();
        // 数据
        $list = $this->field('id, image, title, activity_price, price, is_hg')
            ->where($where)
            ->order("id desc")
            ->paginate($params['pageSize'], $count, ['page' => $params['page']])
            ->toArray();

        return $list;
    }

    /**
     *  活动信息
     */

    public function goodsact()
    {
        return $this->belongsTo('app\admin\model\Activity', 'activity_id', 'id', [], 'LEFT');
    }


    /**
     * 添加第三方商品
     */

    public function insMake($ins)
    {
        return $this->insertAll($ins);
    }


}
